package main

import (
	"flag"
	"fmt"
	"log"
	"os"
	"os/user"

	"gitee.com/chuanjinge/go-interpreter-waiig/src/monkey/repl"
)

func main() {
	setLogger()
	// 定义 -m 命令行参数，默认值为 "compile"
	mode := flag.String("m", "compile", "运行模式，可选值: interprete 或 compile")
	flag.Parse()
	var modeName string
	if *mode == "compile" {
		modeName = "编译模式"
	} else if *mode == "interprete" {
		modeName = "解释模式"
	} else {
		fmt.Println("未知模式，终止执行")
		return
	}

	user, err := user.Current()
	if err != nil {
		panic(err)
	}
	fmt.Printf("你好，%s! 了解以下这个简单的解释器\n", user.Username)
	fmt.Printf("当前运行模式是: %s\n", modeName)
	fmt.Printf("请输入指定的命令:\n")
	if *mode == "compile" {
		repl.StartCompile(os.Stdin, os.Stdout)
	} else {
		repl.Start(os.Stdin, os.Stdout)
	}
	//repl.StartWithDel(os.Stdin, os.Stdout)
}

func setLogger() {
	file, err := os.Create("/tmp/go-interpreter-waiig.log")
	if err != nil {
		fmt.Println(err)
	}

	log.SetOutput(file)
}
